interface Test {
  (e: '123', val: string): void
}

type free = "tabClick" | "";

interface Emits {
	(e: free, val: string): void;
  // (e: number, val: number): string;
}

const emit: Emits = (e: free, val: string) => { return val; }
emit('tabClick', '123');
// const emits: Emits = (e: number, val: string) => `${e}${val}`

const yourSelf: Test = (e: '123', val: string) => { return undefined; }
yourSelf('123', '123');
